Software-defined networking (SDN) is a technique for implementing computer networking environments using software to control dynamically the configuration and allocation of networking and computing hardware resources in the network, In such networks, the control plane can be abstracted as a controller application that has a global view of the network state and manages flow of data and the assignment of computing resources. For example, a controller application can use various network control protocols, such as OpenFlow, to manage the flow of network packets in SDN compatible switches and the allocation of computing resources. In an SDN, the controller may be instantiated in any computer system in the network with connectivity to the network devices and other end-points, such as servers and end-clients.